package com.jmlee.mapper;

import com.jmlee.pojo.Menu;
import org.apache.ibatis.session.RowBounds;

import java.util.List;

public interface MenuMapper {

    /**
     * 获取菜单信息
     *
     * @param parentId 如果存在父id则按照父id搜索其子菜单
     * @return 菜单列表
     */
    List<Menu> selectMenuByRidAndParentId(Long rId, Long parentId, Integer status);


    /**
     * 获取角色不同状态（是否拥有）的菜单id
     *
     * @param rId
     * @param status
     * @return
     */
    List<String> selectParentMenuIdByStatusAndRid(Long rId, Integer status);

    List<String> selectChildMenuIdByStatusAndRid(Long rId, Integer status);

    List<Long> selectAllMenuId();

    /**
     * 获取所有子菜单
     *
     * @return
     */
    List<Menu> selectChildMenu();

    /**
     * 获取所有父级菜单
     *
     * @return
     */
    List<Menu> selectParentMenu();

    /**
     * 新增菜单
     *
     * @param menu 菜单实体
     * @return 成功影响的条数（为1则新增成功）
     */
    Integer insertNewMenu(Menu menu);

    /**
     * 根据ID修改菜单信息
     *
     * @param menu 菜单实体
     * @return 成功影响的条数（为1则修改成功）
     */
    Integer updateMenuById(Menu menu);

    /**
     * 获取全部的菜单ID
     *
     * @param rowBounds
     * @return
     */
    List<Menu> selectAllMenu(RowBounds rowBounds, Menu menu);

    /**
     * 获取未逻辑删除菜单总数
     *
     * @return
     */
    Long selectCountMenu(Menu menu);

    /**
     * 建立菜单和角色的联系
     * @param rId
     * @param mId
     * @return
     */
    Integer insertMenuConnect(Long rId,Long mId);
}
